/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package tp01;

import java.io.*;
import java.util.*;

/**
 *
 * @author Marian
 */
public class Commande {

    protected String nomFichier;
    public List<LigneCommande> lesCommandes;

    public Commande(String nomFichier) {
        this.nomFichier = nomFichier;
        this.lesCommandes = new LinkedList<>();
        //lecture du fichier texte

        try {
            InputStream ips = new FileInputStream(this.nomFichier);
            InputStreamReader ipsr = new InputStreamReader(ips);
            BufferedReader br = new BufferedReader(ipsr);
            String ligne;

            while ((ligne = br.readLine()) != null) {
                String espace = "[ ]+";
                String[] attributProduit = ligne.split(espace);
                int num = Integer.parseInt(attributProduit[0]);
                int ref = Integer.parseInt(attributProduit[1]);
                int quantite = Integer.parseInt(attributProduit[2]);

                LigneCommande lC = new LigneCommande(num, ref, quantite);
                this.lesCommandes.add(lC);
            }
            br.close();
        } catch (Exception e) {
            System.out.println(e.toString());
        }
    }

    public void printContenu() {
        for (LigneCommande lesCommande : lesCommandes) {
            System.out.println(lesCommande);
        }
    }

    public Map<Integer, Integer> analyseDestockage() {
        this.nomFichier = "c:/java/" + nomFichier;
        this.lesCommandes = new LinkedList<LigneCommande>();
        Map map1 = new TreeMap();
        for (LigneCommande lesCommande : lesCommandes) {
            if (map1.containsKey(lesCommande.getRefProduit())){
                
                map1.put(lesCommande.getRefProduit(), lesCommande.getQuantite() + Integer.parseInt(map1.get(lesCommande.getRefProduit()).toString()));

            }
            else{
            map1.put(lesCommande.getRefProduit(), lesCommande.getQuantite());
            }
        }
        return map1;
    }
}
